/**
 * \file MonkeyInvaders.h
 * \author Niels van Galen Last & Erik Kok
 * \date 01-15-08
 */
#ifndef MONKEYINVADERS_H
#define MONKEYINVADERS_H


#include "ExampleApplication.h"
#include "MonkeyFrameListener.h"
#include "OgreBillboardChain.h"


#ifndef WIN32_LEAN_AND_MEAN
#include "OgreOde_Core/OgreOde_Core.h"
#endif

#include "EnemyManager.h"
#include "InfoManager.h"

/**
 * Class MonkeyInvaders
 *
 * Used to create the actual application and start it from our main function
  using the go() function.
 */
class MonkeyInvaders : public ExampleApplication, public virtual CollidingObject
{

protected:
public:
	/// Default constructor
    MonkeyInvaders();

	/// Default destructor
    ~MonkeyInvaders() { }

protected:
	void createScene();
	void destroyScene();
	void createFrameListener();
    void chooseSceneManager();

	bool pulp_fiction;

private:
    OgreOde::InfinitePlaneGeometry  *mGround;    
    OgreOde::Body                   *mBody;
    OgreOde::Body                   *mBody2;
    OgreOde::Geometry               *mGeom;
    OgreOde::Geometry               *mGeom2;
    OgreOde::Geometry               *mGeom3;
    OgreOde::BoxMass                *mMass;
    OgreOde::Space                  *mSpace;
    OgreOde::StepHandler            *mStepper;
    OgreOde::World    *mWorld;

    Ogre::SceneNode                 *mNode;
    Ogre::Entity                    *mEntity;

    EnemyManager* enemy_manager;
	InfoManager* info_manager;
};

#endif
